{% extends 'generic/object.html' %}
{% load static %}
{% load helpers %}
{% load plugins %}
{% load render_table from django_tables2 %}
{% load i18n %}

{% block extra_controls %}
  {% if perms.core.sync_datasource %}
    {% if object.ready_for_sync %}
      <form action="{% url 'core:datasource_sync' pk=object.pk %}" method="post">
        {% csrf_token %}
        <button type="submit" class="btn btn-sm btn-primary">
          <i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
        </button>
      </form>
    {% else %}
      <span class="inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-delay="100" data-bs-placement="bottom">
        <button class="btn btn-sm btn-primary" disabled>
          <i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
        </button>
      </span>
    {% endif %}
  {% endif %}
{% endblock %}

{% block content %}
  <div class="row mb-3">
    <div class="col col-md-6">
      <div class="card">
        <h5 class="card-header">{% trans "Data Source" %}</h5>
        <div class="card-body">
          <table class="table table-hover attr-table">
            <tr>
              <th scope="row">{% trans "Name" %}</th>
              <td>{{ object.name }}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "Type" %}</th>
              <td>{{ object.get_type_display }}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "Enabled" %}</th>
              <td>{% checkmark object.enabled %}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "Status" %}</th>
              <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "Last synced" %}</th>
              <td>{{ object.last_synced|placeholder }}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "Description" %}</th>
              <td>{{ object.description|placeholder }}</td>
            </tr>
            <tr>
              <th scope="row">{% trans "URL" %}</th>
              <td>
                {% if not object.is_local %}
                  <a href="{{ object.source_url }}">{{ object.source_url }}</a>
                {% else %}
                  {{ object.source_url }}
                {% endif %}
              </td>
            </tr>
            <tr>
              <th scope="row">{% trans "Ignore rules" %}</th>
              <td>
                {% if object.ignore_rules %}
                  <pre>{{ object.ignore_rules }}</pre>
                {% else %}
                  {{ ''|placeholder }}
                {% endif %}</td>
            </tr>
          </table>
        </div>
      </div>
      {% include 'inc/panels/tags.html' %}
      {% include 'inc/panels/comments.html' %}
      {% plugin_left_page object %}
    </div>
    <div class="col col-md-6">
      <div class="card">
        <h5 class="card-header">{% trans "Backend" %}</h5>
        <div class="card-body">
          {% with backend=object.backend_class %}
            <table class="table table-hover attr-table">
              {% for name, field in backend.parameters.items %}
                <tr>
                  <th scope="row">{{ field.label }}</th>
                  {% if name in backend.sensitive_parameters and not perms.core.change_datasource %}
                    <td>********</td>
                  {% else %}
                    <td>{{ object.parameters|get_key:name|placeholder }}</td>
                  {% endif %}
                </tr>
              {% empty %}
                <tr>
                  <td colspan="2" class="text-muted">
                    {% trans "No parameters defined" %}
                  </td>
                </tr>
              {% endfor %}
            </table>
            {% endwith %}
        </div>
      </div>
      {% include 'inc/panels/related_objects.html' %}
      {% include 'inc/panels/custom_fields.html' %}
      {% plugin_right_page object %}
    </div>
  </div>
  <div class="row mb-3">
    <div class="col col-md-12">
      <div class="card">
        <h5 class="card-header">{% trans "Files" %}</h5>
        <div class="card-body htmx-container table-responsive"
          hx-get="{% url 'core:datafile_list' %}?source_id={{ object.pk }}"
          hx-trigger="load"
        ></div>
      </div>
      {% plugin_full_width_page object %}
    </div>
  </div>
{% endblock %}
